1. Field of the Invention
The present invention relates generally to executing remote commands initiated from a web browser context, and more specifically to executing and coordinating a collaborative process between a browser and an application server that provides progress of a command and allows optional user input to influence the command execution.
2. Description of the Related Art
AJAX, or asynchronous JavaScript and eXtensible Markup Language (XML), is a group of interrelated web development techniques used for creating interactive web applications that enable information to be exchanged between a web client and web server. In traditional web application interactions, when a user wants to send data to a server (e.g., by filling out a Hypertext Markup Language (HTML) form on a web page), the user submits the data, and the server processes the data and sends a response back to the web page. However, these traditional interactions require that the user wait until the entire web page is refreshed to be able to continue to view or interact further with the web page. Thus, when the user wants to retrieve new data from the server, the user must wait for the whole web page to be reloaded. AJAX addresses this problem by enabling web applications to be written without requiring entire web pages to be reloaded or refreshed each time there is a need to fetch data from the server. AJAX is asynchronous, in that extra data is requested from the server and loaded in the background without interfering with the display and behavior of the existing page. To increase the responsiveness and interactivity of web pages, AJAX uses small JavaScript calls in the form of nonstandard XmlHttpRequest objects to communicate with server-side scripts. An XmlHttpRequest object is an application programming interface that may be used by JavaScript and other web browser scripting languages to transfer XML and other text data between a web page's client-side and server-side. XmlHttpRequest may be used to fetch data in XML, HTML, JavaScript Object Notation (JSON), or plain text.